def find_max_and_min(arr):  
    if not arr:  
        return None, None  
      
    maxe = arr[0]  
    mine = arr[0]  
      
    for i in range(1, len(arr)):  
        if arr[i] > maxe:  
            maxe = arr[i]  
        if arr[i] < mine:  
            mine = arr[i]  
      
    return maxe, mine  
  

arr = [3, 1, 4, 15, 5, 9, 2, 6]  
max_val, min_val = find_max_and_min(arr)  
print(f"Max: {max_val}, Min: {min_val}")

#时间复杂度分析
#最好情况：我们需要遍历整个数组来确保找到最大值和最小值。因此最好情况下的时间复杂度仍然是O(n)。
#最坏情况：当数组中的元素是随机排列的，同样需要遍历整个数组来找到最大值和最小值。因此最坏情况下的时间复杂度也是O(n)。
#平均情况：O(n)
